From 0d03dd60a12a1af5d828864844dba3055418969f Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Thu, 3 May 2007 11:22:58 +0100 Subject: [PATCH] xend: Revert changeset 15002. Breaks xend restart in some cases. Signed-off-by: Keir Fraser --- tools/python/xen/xend/server/SrvDaemon.py | 2 +- tools/python/xen/xend/server/SrvServer.py | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tools/python/xen/xend/server/SrvDaemon.py b/tools/python/xen/xend/server/SrvDaemon.py index ccb485d1fb..a265aef906 100644 --- a/tools/python/xen/xend/server/SrvDaemon.py +++ b/tools/python/xen/xend/server/SrvDaemon.py @@ -342,7 +342,7 @@ class Daemon: log.info("Xend version: Unknown.") relocate.listenRelocation() - servers = SrvServer.create(status) + servers = SrvServer.create() servers.start(status) del servers diff --git a/tools/python/xen/xend/server/SrvServer.py b/tools/python/xen/xend/server/SrvServer.py index 544be9725d..10a09a4c56 100644 --- a/tools/python/xen/xend/server/SrvServer.py +++ b/tools/python/xen/xend/server/SrvServer.py @@ -95,6 +95,14 @@ class XendServers: self.cleanup(signum, frame, reloading = True) def start(self, status): + # Running the network script will spawn another process, which takes + # the status fd with it unless we set FD_CLOEXEC. Failing to do this + # causes the read in SrvDaemon to hang even when we have written here. + if status: + fcntl.fcntl(status, fcntl.F_SETFD, fcntl.FD_CLOEXEC) + + Vifctl.network('start') + # Prepare to catch SIGTERM (received when 'xend stop' is executed) # and call each server's cleanup if possible signal.signal(signal.SIGTERM, self.cleanup) @@ -241,15 +249,7 @@ def _loadConfig(servers, root, reload): servers.add(XMLRPCServer(XendAPI.AUTH_PAM, False)) -def create(status): - # Running the network script will spawn another process, which takes - # the status fd with it unless we set FD_CLOEXEC. Failing to do this - # causes the read in SrvDaemon to hang even when we have written here. - if status: - fcntl.fcntl(status, fcntl.F_SETFD, fcntl.FD_CLOEXEC) - - Vifctl.network('start') - +def create(): root = SrvDir() root.putChild('xend', SrvRoot()) servers = XendServers(root) -- 2.30.2